/**
 * ITLSaasMenuDao.java com.lianniu.mgr.dao
 *
 * Function： TODO
 *
 * ver date author ────────────────────────────────── 0.1 2016年3月24日 王天锦
 *
 * Copyright (c) 2016, TNT All Rights Reserved.
 */

package com.lianniu.mgr.baseService.menu.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import com.lianniu.mgr.baseService.menu.model.MenuSysVo;
import com.lianniu.mgr.baseService.menu.model.MenuVo;


/**
 * 
 * @ClassName：IMenuMapperDao
 * @Description:菜单管理

 * @Since: 2016年4月8日
 * @Version:0.1
 */
public interface IMenuMapperDao {

  /**
   * 
   * @Description：根据等级获取菜单
   * @param menuLevel
   * @return
   * @Return:List<MenuVo>

   * @Date:2016年4月8日
   */
  public List<MenuVo> getMenuBylevel(int menuLevel);

  /**
   * 
   * @Description：根据等级获取菜单
   * @return
   * @Return:List<MenuSysVo>

   * @Date:2016年4月8日
   */
  public List<MenuSysVo> getSysInfoList();

  /**
   * 
   * @Description：根据等级获取菜单
   * @param menuVo
   * @return
   * @Return:int

   * @Date:2016年4月8日
   */
  public int addMenu(MenuVo menuVo);


  /**
   * 
   * @Description：根据等级和系统Id获取菜单
   * @param menuLevel等级,0:查询全部
   * @param sysId
   * @return
   * @Return:List<MenuVo>

   * @Date:2016年4月8日
   */
  public List<MenuVo> getMenuBylevelAndSysId(@Param(value = "menuLevel") int menuLevel, @Param(
      value = "sysId") String sysId);

  /**
   * 
   * @Description：根据Id获取菜单详情
   * @param menuId
   * @return
   * @Return:MenuVo

   * @Date:2016年4月8日
   */
  public MenuVo getMenuByMenuId(String menuId);

 /**
  * 
  * @Description：修改菜单
  * @param menuVo
  * @return
  * @Return:int

  * @Date:2016年4月8日
  */
  public int editMenu(MenuVo menuVo);

  /**
   * 
   * @Description：根据上级Id获取排序号
   * @param parentId
   * @return
   * @Return:int

   * @Date:2016年4月8日
   */
  public int getSortNumByParentId(String parentId);

  /**
   * 
   * @Description：验证排序好是否存在
   * @param parentId
   * @param sortNum
   * @param menuId
   * @return
   * @Return:int

   * @Date:2016年4月8日
   */
  public int isSortNum(@Param(value = "parentId") String parentId,
      @Param(value = "sortNum") int sortNum, @Param(value = "menuId") String menuId);

  /**
   * 
   * @Description：批量删除
   * @param menuIdArr
   * @return
   * @Return:int

   * @Date:2016年4月8日
   */
  public int delMenuByIdArr(String[] menuIdArr);

  /**
   * 
   * @Title: getMenuByMenuIdSys
   * @Description: 根据菜单id和系统 获取菜单列表

   * @param list
   * @return
   * @date: 2016年4月1日 下午2:32:01
   * @return: List<MenuVo>
   */
  public List<MenuVo> getMenuByMenuIdSys(@Param(value = "menulist") List<String> list, @Param(
      value = "sysinfo_di") String sysinfo_id);
  
  
  /**
   * 
   * @Description：根据父级Id获取所有子节点Id
   * @param parentId
   * @return
   * @Return:List<MenuVo>

   * @Date:2016年4月8日
   */
  public List<MenuVo> getAllMenuByParentId(String parentId);
  
  /**
   * 
   * @Description：根据系统Id列表获取菜单列表
   * @param sysList
   * @return
   * @Return:List<MenuVo>

   * @Date:2016年4月8日
   */
  public List<MenuVo> getMenuBySysId(List<String> sysList);

}
